1. Field of the Invention
The present invention relates to multicast communications systems, and more particularly to a multicast communications system that distributes packets to multiple destinations through a multicast tree.
2. Description of the Related Art
Multicast communication techniques are widely used in recent years to distribute the same set of packets (e.g., video streams) to multiple specified destinations. The term “multicast” is used as opposed to other terms representing a specific communication mode, such as “unicast” which means sending packets from one node to another node or “broadcast” which means sending packets to all connected receivers.
The users of video and other communication content desire high quality services even when they are moving. Network systems for cellular phones and portable notebook computers are required to provide not only mobility of users, but also high-quality multicast communications services.
FIG. 22 shows an example of multicast communication. The illustrated network 100 is formed from routers R101 to R104, a transmitting device 101, and terminal groups g1 and g2 each including a plurality of terminals. For simplicity purposes, let a single receiving terminal 102 represent one terminal group g1. Likewise, the other terminal group g2 will be represented by a single receiving terminal 103.
Three routers R101 to R103 are connected in line, and another router R104 is linked to router R102. One receiving terminal 102 is attached to router R101 via a radio link, while another receiving terminal 103 is wired to router R103.
The two receiving terminals 102 and 103 send an entry request to their corresponding routers R101 and R103 to subscribe to a multicast service. In this example, multicast packets transmitted from the transmitting device 101 are supposed to flow over two routes provided by a multicast tree m1. One route goes from the transmitting device 101, then to router R101, and reaches one receiving terminal 102. The other route goes from the transmitting device 101, then to router R101, router R102, router R103, and reaches another receiving terminal 103.
FIG. 23 shows another example of multicast communication. It is assumed that the transmitting device 101 has left its original router R101 and is now attached to a different router R104. The resulting network 100a offers a new multicast tree m2 to deliver multicast packets from the transmitting device 101 to the receiving terminals 102 and 103 through two routes. That is, one route goes from the transmitting device 101, then to router R104, router R102, router R101, and reaches one receiving terminal 102. The other route goes from the transmitting device 101, then to router R104, router R102, router R103, and reaches another receiving terminal 103.
The network supports the Internet Group Management Protocol (IGMP) to allow terminals to use a multicast service in the way described above. A multicast tree can be established by using the techniques known as the Protocol Independent Multicast Dense Mode (PIM-DM), PIM-Sparse Mode (PIM-SM), and Source Specific Multicast (SSM). Another tree building method is available as part of RFC3032, the Multi Protocol Label Switching Architecture (MPLS), which permits a source device or routing device to initiate a process to create a multicast tree.
According to one proposed technique for multicast communication, when an entry request for joining a multicast group arrives at a certain routing device, that routing device asks its adjacent routing devices to update their routing tables to build a multicast tree (see, for example, Japanese Patent Application Publication No. 2004-297579, paragraph Nos. 0044 to 0049, FIG. 1). This proposed technique, however, may reduce operability and reliability of the network system since, in the case where movement of terminal stations causes a change in the multicast tree, some transmitted packets might arrive at their destinations in an incorrect sequence or could even be dropped somewhere on the way.
FIG. 24 shows the drawback of a conventional system mentioned above. It is assumed here that the transmitting device 101 is moving from one router R101 to another router R104 while multicasting a series of packets D1, D2, D3, . . . D8 in that order to receiving terminals 102 and 103. It is also assumed that router R101 has some delay of buffering when it sends packets. When the multicast tree changes its form from m1 to m2, routers R101 to R104 updates their respective internal multicast tables with new routing information. More specifically, those routers R101 to R104 overwrite their table t1 describing the initial multicast tree m1 with a new table t2 describing a new multicast tree m2.
Suppose now that router R101 recognizes an event that necessitates a change in the current multicast tree m1 before forwarding the first four packets D1 to D4 completely. One possible scenario in this situation is that router R101 changes its multicast table from t1 to t2 right after the third packet D3 is sent out to the multicast tree m1. According to the new multicast table t2 for multicast tree m2, router R101 reconfigures itself such that every incoming packet from router R102 to the receiving terminal 102. Since the previous routing information describing the initial multicast tree m1 has been erased, router R101 is unable to decide where to forward a subsequent packet D4. As a result, the receiving terminal 102 cannot receive that packet D4; that is, a packet drop occurs.
Another possible scenario in the above situation may be as follows: Router R101 sends out a packet D4 to initial multicast tree m1, while router R102 changes its multicast table from t1 to t2 to adapt itself to a new multicast tree. Router R104, on the other hand, forwards a packet D5 to router R102. In this situation, packet D5 may happen to arrive earlier than packet D4 at router R102, and as a result, router R102 forwards packet D5 and then packet D4 toward the receiving terminal 103. This means that the receiving terminal 103 receives these packets in a reverse order.
As can be seen from the above examples, the conventional multicast network is unable to handle changes in the multicast tree structure properly, causing inconsistent control of multicast data traffic in different routers. The resulting packet drop or reversed sequence of packets would disrupt reception of multicast data at many terminal.